package com.xgk.boot.module.core.controller.admin.truck.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.xgk.boot.framework.common.enums.CommonStatusEnum;
import com.xgk.boot.module.core.enums.biz.*;
import lombok.Data;

import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 订单主信息展示对象
 */
@Data
public class TruckOrderVO {
    private Long orderId;

    /** 订单编号（唯一键）用户id+日期时间+几位编码 */
    private String orderCode;

    /** 客户参考号 */
    private String referenceNo;

    /** 客户ID */
//    private Long customerId;

    /** 客户代码（8位字符） */
    private String customerCode;

    /** 物流商品code */
    private String productCode;

    /** 服务商渠道代码 */
    private String spCode;

    /** 订单类型：0-普通订单 */
    private Integer orderType;

//    /** 创建方式：api/export/web */
//    private String createType;

    /** 国家简码（ISO 2字母） */
    private String countryCode;

    //发件人国家
    private String pickUpCountry;
    //发件人国家
    private String pickUpPostcode;
    //收件人国家
    private String deliveryCountry;
    //收件人邮编
    private String deliveryPostCode;

    /** 运费估算（USD） */
    private BigDecimal shippingFeeEstimate;

    /** 币种代码（ISO 3字母） */
    private String currencyCode;

//    /** 内件总数量 */
//    private Integer totalQuantity;
//
//    /** 订单总重量（kg） */
//    private Double totalWeight;

    /** 订单状态：0-已取消 1-草稿 2-已提交 3-已预报 99-已作废
     * 枚举 {@link OrderStatusEnum}
     * */
    private Integer orderStatus;



//    /** 拦截状态：0-无 1-申请拦截 2-拦截中 3-拦截失败 4-已拦截
//     * 枚举 {@link InterceptionStatusEnum}
//     * */
//    private Integer interceptStatus;

    /** 运单号 */
    private String trackingNumber;

    /** 物流状态：0-未分配 1-找车中 2-已分配司机
     * 枚举 {@link LogisticsStatusEnum}
     * */
    private Integer logisticsStatus;

    /** 物流跟踪URL */
    private String trackingUrl;

//    /** 最早提货时间（yyyy-MM-dd HH:mm格式） */
//    private String earliestPickupDate;
//
//    /** 预计送达时间（yyyy-MM-dd HH:mm格式） */
//    private String estimatedDeliveryDate;

    /** 计费状态：0-计费完成 1-待计费 2-计费失败 */
    private Integer orderChargeStatus;

    /** 是否手工上传跟踪号：0-否 1-是 */
    private Integer isUploadExpress;

    /** 是否允许重新预报：0-否 1-是 */
    private Integer isAnewExpress;

    /** 同步服务商状态：0-未同步 1-已同步 2-同步失败
     * {@link SyncStatusEnum}
     * */
    private Integer syncServiceStatus;

    /** 同步次数 */
    private Integer syncCount;

    /** 取消时间 */
    private Instant cancelTime;

    /** 物流时间 */
    private Instant logisticsTime;

//    /** 付款时间 */
//    private LocalDateTime orderPaydate;

    /** 客户备注 */
    private String remark;

    /** 操作备注 */
    private String operatorNote;

    /** 物流异常信息 */
    private String logisticsErr;

    /** 同步异常信息 */
    private String syncInfo;

    /** 出账状态：0-未出账 4-已出账 */
    private Integer billStatus;

    /** 面单格式：PDF/ZPL */
    private String labelFormat;

    private LocalDateTime createTime;

    private LocalDateTime updateTime;

}